perm filename PUP5.TAL[AP,DBL]1 blob
sn#102784 filedate 1974-05-24 generic text, type T, neo UTF8
00100 Automatic Programming Group Meeting, Thursday, May 30.
00200
00300
00400
00500
00600
00700
00800
00900
01000
01100
01200
01300 PUP5
01400 Programming-Understanding Program by Doug Lenat
01500
01600
01700
01800
01900
02000
02100
02200 Why existing ideas are insufficient.
02300 The new idea.
02400 Applying it to a nontrivial task.
02500 The task.
02600 An example.
02700 The implementation.
02800 Results.
02900 Conclusions and Suspicions.
03000
03100
00100 1. Why these won't do Automatic Structured Programming of big programs:
00200 Turing Machines, Production Rules, Markov Algorithms
00300 Frames
00400 Templates
00500 Primitives (and syntactic constraints)
00600 Actors
00700 Demons, Multiple Processes, Alternative Control Contexts,
00800 Alternative Data Contexts, Hypothetical Reasoning
00900 Heterarchy (the magic word of the seventies)
01000 Structured Programming
01100 Assertions versus Pattern-directed invokation of procedurally
01200 embedded knowledge
01300 QLISP, PLANNER, CONNIVER, ...
01400 HACKER, PUP1, PW1, Examples-Program, ...
01500 Hoare, Dijkkkstra, Floyd, ...
01600
01700
01800 2. Take the best of each of these, add 1/2 new idea, shake well.
01900 System Organization
02000 The assumption
02100 The idea (actually only about half an idea)
02200 examples
02300 Benefits hoped for
02400
00100 3. Pick a nontrivial programming problem, and try to do it using the idea.
00200
00300 The Task: Write CF, a miniature version of JUMBO, a miniature
00400 version of Winston's Concept Formation program
00500 Diagram of what PUP5 does; diagram of what CF must do.
00600 An example: "Some feature of scene E is incompatible with some
00700 feature of the known scene G"
00800 How a human handles this
00900 How PUP5 handles this
01000 Implementation: The organization of the PUP5 system
01100 Amount of problem-specific info, and an example
01200 Amount of programming knowledge, and an example
01300 Confessions: Kludges, Direct function calls, Functions,
01400 Natural Language Front End, Elegance vs Efficiency
01500 Program description: Size, Core, Time, Complexity
01600 Results
01700 What went in (user-PUP5 dialog)
01800 What came out (the final CF program it produced)
01900 Efficiency, Style, Length;
02000 Surprise: CF, too, understands what it's doing!!
02100 What else could come out (now; with a little coaxing; never)
02200 Is the CF program really stored somewhere inside PUP5?
02300 somewhere inside the user?
02400
02500
02600 4. Conclusions
02700 Was it worth 8 months? Was it worth this one talk?
02800 Was it the right way to solve the problem? Was it the right problem?
02900 Future work:
03000 summer: several more programs turned out, more faithful to the idea
03100 theory: what kinds of programs is it well {poorly} suited to?
03200 destiny: what will happen to the idea? did it ever really exist?
03300 cooordination with other systems: ease, utility, who's in control?
03400